#pragma once
#include <vtkGenericOpenGLRenderWindow.h>
#include "QVTKInteractorStyle.h"
#include <vtkSmartPointer.h>
#include <vtkProperty.h>

class viewWidget
{
public:
    void setRenderWindow(vtkSmartPointer<vtkGenericOpenGLRenderWindow> renderWindow) {
        this->renderWindow = renderWindow;
    }

    void setRenderer(vtkSmartPointer<vtkRenderer> renderer) {
        this->renderer = renderer;
    }

    void setInteractorStyle(vtkSmartPointer<QVTKInteractorStyle> interactorStyle) {
        this->myInteractorStyle = interactorStyle;
    }

    void setRenderWindowInteractor(vtkSmartPointer<vtkRenderWindowInteractor> renderWindowInteractor) {
        this->myRenderWindowInteractor = renderWindowInteractor;
    }

    vtkSmartPointer<vtkGenericOpenGLRenderWindow> getRenderWindow() {
        return this->renderWindow;
    }

    vtkSmartPointer<vtkRenderer> getRenderer() {
        return this->renderer;
    }

    vtkSmartPointer<QVTKInteractorStyle> getInteractorStyle() {
        return this->myInteractorStyle;
    }

    vtkSmartPointer<vtkRenderWindowInteractor> getRenderWindowInteractor() {
        return this->myRenderWindowInteractor;
    }

private:
    vtkSmartPointer<vtkGenericOpenGLRenderWindow> renderWindow;
    vtkSmartPointer<vtkRenderer> renderer;
    // ! IVtk_ShapePicker from OCC VIS
    //vtkSmartPointer<IVtkTools_ShapePicker> shapePicker;
    
    vtkSmartPointer<QVTKInteractorStyle> myInteractorStyle;
    vtkSmartPointer<vtkRenderWindowInteractor> myRenderWindowInteractor;


};